package com.zx.deploy.service;

import java.util.List;

import com.zx.deploy.config.DeployConfig;
import com.zx.deploy.model.SpeedProgress;

/**
 * 程序部署操作
 * @author jbyu
 *
 */
public interface SoftService {
	
	/**
	 * 解压包
	 */
	public void unPackage(DeployConfig config,SpeedProgress speed);
	
	
	/**
	 * 执行脚本
	 */
	public void executeSql(DeployConfig config,SpeedProgress speed);

	
	/**
	 * 备份包
	 */
	public void backupWar(DeployConfig config, List<String> wars,SpeedProgress speed);
	
	
	/**
	 * 停止服务
	 * @param config
	 */
	public void stopServer(DeployConfig config,SpeedProgress speed);
	
	
	/**
	 * 启动服务
	 * @param config
	 */
	public void startServer(DeployConfig config,SpeedProgress speed);
	
	/**
	 * 清除缓存
	 * @param config
	 */
	public void cleanCache(DeployConfig config,SpeedProgress speed);
	
	
	/**
	 * 拷贝到server
	 * @param config
	 */
	public void copyWar(DeployConfig config,SpeedProgress speed,List<String>wars,String sourcetPath);
	
	
	/**
	 * 安装服务()
	 * @param config
	 */
	public void install(DeployConfig config,SpeedProgress speed);
	
	
	/**
	 * 更新版本
	 * @param config
	 */
	public void updateVersion(DeployConfig config);
	
	/**
	 * 清理备份文件
	 * @param config
	 * @param speed
	 * @num  保留最近的文件个数
	 */
	public SpeedProgress clearBackFile(DeployConfig config,Integer num);
	
	
	/**
	 * 从备份中恢复包
	 * @param config
	 */
	public void recoveryPackage(DeployConfig config,SpeedProgress speed,String fileName);

}
